A Path-Sensitive Control Flow Graph

نویسندگان

  • Joxan Jaffar
  • Jorge A. Navas
  • Andrew E. Santosa
چکیده

Control Flow Graph (CFG) is a compact representation of all executable paths of a program and it is central to most program analyses. Unfortunately, the direct use of a CFG has two major sources of imprecision: (a) the existence of infeasible paths, and (b) the merging of states along incoming edges of a control-flow merge. Addressing these two problems is the path-sensitivity issue, and it is a folklore that path-sensitive analyses are more accurate. In this paper, we present a method to systematically restructure a CFG in order to encode path-sensitivity into it. The path-sensitive CFG is generated from the symbolic execution tree by (a) removing infeasible paths, and (b) duplicating subgraphs when it is likely to produce more accurate results by the underlying analyzer. We use constraint solving to test path infeasibility. To produce a graph of manageable size, we systematically generalize the state associated with a tree node while preserving its reason of infeasibility. This increases the likelihood of subsuming other nodes. If a node is subsumed then it is merged together with its subsumer. Otherwise, our method splits the subsumer and the subsumed nodes. The above transformation is done offline and independent to the analysis. We finally present experimental data on real benchmarks that shows the efficiency and effectiveness of the approach.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Path-Sensitive Analysis Using Edge Strings

Path sensitivity improves the quality of static analysis by avoiding approximative merging of dataflow facts collected along distinct program paths. Because full path sensitivity has prohibitive cost, it is worthwhile to consider hybrid approaches that provide path sensitivity on selected subsets of paths. In this paper, we consider such a technique based on an edge string, a compact abstractio...

متن کامل

Optimizing Cost Function in Imperialist Competitive Algorithm for Path Coverage Problem in Software Testing

Search-based optimization methods have been used for software engineering activities such as software testing. In the field of software testing, search-based test data generation refers to application of meta-heuristic optimization methods to generate test data that cover the code space of a program. Automatic test data generation that can cover all the paths of software is known as a major cha...

متن کامل

SLR: Path-Sensitive Analysis through Infeasible-Path Detection and Syntactic Language Refinement

We present a technique for detecting semantically infeasible paths in programs using abstract interpretation. Our technique uses a sequence of path-insensitive forward and backward runs of an abstract interpreter to infer paths in the control flow graph that cannot be exercised in concrete executions of the program. We then present a syntactic language refinement (SLR) technique that automatica...

متن کامل

BTrace: Path Optimization for Debugging

We present and solve a path optimization problem on programs. Given a set of program nodes, called critical nodes, we find a shortest path through the program’s control flow graph that touches the maximum number of these nodes. Control flow graphs over-approximate real program behavior; by adding dataflow analysis to the control flow graph, we narrow down on the program’s actual behavior and di...

متن کامل

Event-Flow Graphs for Efficient Path-Sensitive Analyses

Efficient and accurate path-sensitive analyses pose the challenges of: (a) analyzing an exponentially-increasing number of paths in a control-flow graph (CFG), and (b) checking feasibility of paths in a CFG. We address these challenges by introducing an equivalence relation on the CFG paths to partition them into equivalence classes. It is then sufficient to perform analysis on these equivalenc...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2010